/*
 * Dao.java
 *
 * Created on 22 de Agosto de 2007, 23:55
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package br.com.sgpa.persistencia;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;


public class Dao<T,PKey> {
    protected final EntityManager gerenciadorDeEntidades;
    protected final Class classe;
    
    
    public Dao(EntityManager em,Class classe) {
        gerenciadorDeEntidades = em;
        this.classe = classe;
    }
    
    public void inserir(T obj) {
        gerenciadorDeEntidades.persist(obj);
    }
    
    public void alterar(T obj) {
        obj = (T)gerenciadorDeEntidades.merge(obj);
        gerenciadorDeEntidades.persist(obj);
    }
    
    public void excluir(T obj) {
        obj = (T)gerenciadorDeEntidades.merge(obj);
        gerenciadorDeEntidades.remove(obj);
    }
    
    public T consultarPorId(PKey id) {
        return (T)gerenciadorDeEntidades.find(this.classe,id);
    }
    
    
    
}
